The present invention generally relates to a method for allocating real pages in a real storage to each virtual page in a virtual storage type computer system. More specifically, the present invention is directed to a real storage allocation method suitable for such a computer system employing a real storage apparatus having a large storage capacity.
In the conventional virtual storage system employing the on-demand paging method, both the virtual storage and real storage are subdivided into so-called "pages" having the same sizes, and then the virtual storage page corresponds to the relevant real storage page in a 1:1 page unit relationship employing an address translation table.
On the other hand, since very recently, computerization has advanced considerably, and the scale of information to be processed by computers becomes very large. Accordingly, memory capacities of storage apparatuses employed in these computers become very large similarly.
As a result, a total number of pages employed in these storage apparatus becomes huge.
(1) Problems with storage capacity expansion of a real storage apparatus. PA0 (2) Problems with capacity expansion of virtual storage apparatus.
Since the operating system manages the real storage apparatus in the divisional unit of the real storage apparatus, i.e., in the page unit, a huge number of pages must be managed as compared with the storage capacity of the real storage apparatus, so that the operating system per se greatly consumes such a resource, e.g., a CPU time (central processing unit time) and a real storage in order to perform the management. In other words, the managing overhead for the operating system becomes large. Furthermore, as storage protection keys are provided with the respective pages of the real storage with 1:1 correspondence therebetween for a storage protection purpose, a total number of these storage protection keys also increases greatly. The memory for storing a storage protection key is referred to as a "key storage apparatus", which is constructed of memory elements having a higher speed than that of the real storage. This is because the accessing performance of the key storage may greatly influence the performance of the overall system. As a result, there is such a problem that when the storage capacity of the real storage becomes larger and larger, the great storage capacity of the expansive key storage is required, but also the entire hardware cannot be packaged within a predetermined packaging area, whereby the accessing performance of the key storage is deteriorated. To solve this problem, the size of the real page may be extended or expanded. This solution is described in, for instance, JP-A-60-204048 and JP-A-63-289659.
In accordance with the expansion of the real page sizes of prior art, only the virtual pages having the same sizes as those of the expanded real pages can be allocated to the real storage regions constructed of the expanded real pages.
However, generally speaking, as the conventional programs have been formed, taking account of the sizes of the virtual pages, there are some programs which cannot be executed if the virtual page size is extended, or expanded.
Between the virtual storage and real storage, the virtual address corresponds to the real address in 1:1 correspondence in the unit of the virtual page size by way of the address translation table. Since the address translation table has the entries for each virtual page size, the virtual page size remains. If the capacity of the virtual storage apparatus becomes great, the capacity of the address translation table becomes large also. To reduce the capacity of this address translation table, a large virtual page size may be selected. In this case, for the sake of compatibility among the conventional programs, it is preferable to employ the virtual pages having both the conventional size and the extended size in the same virtual storage apparatus. Moreover, it is preferable such that the real page of the real storage apparatus may be allocated to the virtual pages having any sizes. These conventional ideas are described in, for instance, JP-A-53-114318, JP-A-58-17586, JP-A-62-274351, JP-A-63-37445, JP-A-63-289659, JP-A-64-17137, JP-A-64-27138, and JP-A-01-109451.
In accordance with these conventional techniques, some real pages of the conventional size are grouped; and one of these real page groups is allocated to a virtual page having a larger size than the conventional size, whereas one real page within one real page group is allocated to a virtual page having a smaller size than the conventional size.
Furthermore, for example in JP-A-63-37445 listed above, a key of storage keys of real pages of each real page group is employed as a representative storage key to control accesses to respective pages within the real page group. Also, there is provided either a representative reference bit (R), or a representative change bit (C) for each real page group. A check can be made whether or not either the reference operation or rewriting operation has been done to each real page group, based upon the representative bit (R) or the representative change bit (C), stored for each real page group. However, circuits for accessing these representative storage keys, representative reference bits, and representative change bits are newly required in this conventional allocation method.
In addition, there is no clear description in these conventional allocation methods for a method for determining to which real page within the real page group a virtual page having the smaller size is to be allocated. Depending upon a specific allocation method which may be adopted, only a portion of each of many real page groups will be allocated to virtual pages of conventional size. As a result, some real pages which have not yet been allocated to virtual pages still remain, but there might not be a real page group to be allocated to a virtual page having the larger size.
Use of enlarge real pages instead of grouping real pages to obtain an enlarged real area and use of a single key for each enlarged real page is also proposed in the prior art, for example in JP-A-63-289659, listed hereinabove. In the prior art of this kind, however, similar problems mentioned above remain.